$(function () {
    const enabled={
        false:"禁用",
        true:"启用",
    };


    /*角色列表*/
    $("#role_data_grid").datagrid({
        url:"/role/list",
        columns:[[
            {field:'text',title:'名称',width:100,align:'center'},
            {field:'code',title:'编号',width:100,align:'center'},
            {field:'enabled',title:'状态',width:100,align:'center',formatter:function (value,row,index) {
                    return enabled[value];
                }},
        ]],
        fit:true,
        fitColumns:true,
        rownumbers:true,
        pagination:true,
        toolbar:"#role_toolbar",
        singleSelect:true,
        striped:true,
    });

    /*对话框*/
    $("#role_dialog").dialog({
        width:600,
        height:400,
        closed:true,
        buttons:[
            {
                text:'保存',
                handler:function(){

                    /*判断是新增还是编辑*/
                    var id = $("[name = 'id']").val();
                    var url;
                    if(id){
                        /*编辑*/
                        url = "/role/update";
                    }else {
                        /*新增*/
                        url = "/role/save";
                    }
                    /*提交表单*/
                    $('#roleForm').form("submit",{
                        url:url,
                        onSubmit: function(param){
                            debugger;
                            menuIds = [];
                            var menus =  $("#menu-tree").tree("getChecked");
                            for(var menu of menus) {
                                menuIds.push(menu.id);
                            };
                            param.menuIds = menuIds;
                        },
                        success:function(data){
                            data = $.parseJSON(data);
                            if(data.success){
                                $.messager.alert("温馨提示",data.msg);
                                /*关闭对话框*/
                                $("#role_dialog").dialog("close");
                                /*重新加载数据*/
                                $("#role_data_grid").datagrid("reload");
                            }else {
                                $.messager.alert("温馨提示",data.msg);
                            }
                        }
                    })
                }
            },
            {
                text:'关闭',
                handler:function(){
                    $("#role_dialog").dialog("close");
                }
            }
        ],
    });


    /*监听添加的点击事件*/
    $('#add').click(function () {
        $('#menu-tree').tree('collapseAll');
        /*清空数据*/
        $('#role_dialog').dialog("setTitle","添加角色");
        $("#roleForm").form("clear");
        $('#role_dialog').dialog("open");
        /*清空菜单*/
        var nodes = $('#menu-tree').tree('getChecked');

        if(nodes.length>0){
            for(var node of nodes) {
                $('#menu-tree').tree('uncheck', node.target);
            };

        }


    });

    /*监听编辑的点击事件*/
    $("#edit").click(function () {
        /*获取当前选中的行*/
        var rowData = $("#role_data_grid").datagrid("getSelected");

        if(!rowData){
            $.messager.alert("提示","选择一行数据进行编辑");
            return;
        }
        /*发送ajax来回显*/
        $.get("/role/getRoleById?id="+rowData.id,function (data) {
            /*弹出对话框*/
            $('#role_dialog').dialog("setTitle","编辑角色");
            $('#role_dialog').dialog("open");
            /*选中数据的回显*/
            $("#roleForm").form("load",data);
            /*选中菜单*/
            var nodes = $('#menu-tree').tree('getChecked');

            if(nodes.length>0){
                for(var node of nodes) {
                    $('#menu-tree').tree('uncheck', node.target);
                };

            }


            for(var menuId of data.menuIds) {
              var node =  $("#menu-tree").tree("find",menuId);
                $('#menu-tree').tree('check', node.target);
            };
            $('#menu-tree').tree('collapseAll');

        })

    });

    /*菜单*/
    $("#menu-tree").tree({
        method:'get',
        url: '/menu/list',
        checkbox:true,
        onLoadSuccess: function(){  $('#menu-tree').tree("collapseAll");  }
    });

    /*状态下拉框*/
    $("#enabled").combobox({
        width:160,
        panelHeight:"auto",
        textField:"label",
        valueField:"value",
        data:[
            {label:"启用",value:true},
            {label:"禁用",value:false}
        ],
        prompt:"请选择状态",
        editable:false
    });


    /*监听启用按钮点击*/
    $("#enable").click(function(){
        /*获取当前选中的行*/
        var rowData = $("#role_data_grid").datagrid("getSelected");
        if(!rowData){
            $.messager.alert("提示","选择一行数据进行编辑");
            return;
        }
        if(rowData.enabled){
            $.messager.alert("温馨提示","该角色已被启用");
            return;
        }
        /*提醒用户，是否做离职的操作*/
        $.messager.confirm("确认","是否启用此角色?",function (res) {
            if(res){
                /*离职操作*/
                $.post("/role/updateStatus?id="+rowData.id+"&enabled=true",function (data) {
                    if(data.success){
                        $.messager.alert("温馨提示",data.msg);
                        /*关闭对话框*/
                        /*重新加载数据*/
                        $("#role_data_grid").datagrid("reload");
                    }else {
                        $.messager.alert("温馨提示",data.msg);
                    }
                })
            }
        })
    });

    /*监听禁用按钮点击*/
    $("#disable").click(function(){
        /*获取当前选中的行*/
        var rowData = $("#role_data_grid").datagrid("getSelected");
        if(!rowData){
            $.messager.alert("提示","选择一行数据进行编辑");
            return;
        }
        if(!rowData.enabled){
            $.messager.alert("温馨提示","该角色已被禁用");
            return;
        }
        /*提醒用户，是否做离职的操作*/
        $.messager.confirm("确认","是否禁用此角色?",function (res) {
            if(res){
                /*离职操作*/
                $.post("/role/updateStatus?id="+rowData.id+"&enabled=false",function (data) {
                    if(data.success){
                        $.messager.alert("温馨提示",data.msg);
                        /*关闭对话框*/
                        /*重新加载数据*/
                        $("#role_data_grid").datagrid("reload");
                    }else {
                        $.messager.alert("温馨提示",data.msg);
                    }
                })
            }
        })
    });

    /*监听搜索按钮点击*/
    $("#searchbtn").click(function () {
        /*获取搜索的内容*/
        var keyword = $("[name='keyword']").val();
        /*重新加载列表并且把keyword传过去*/
        $("#role_data_grid").datagrid("load",{keyword:keyword});
    });

    /*监听刷新按钮点击*/
    $("#reload").click(function () {
        /*清空搜索的框的内容*/
        var keyword = $("[name='keyword']").val("");
        /*重新加载列表*/
        $("#role_data_grid").datagrid("load",{});
    });
});